/*
 * Document.h
 *
 * Un document abstrait, réimplementé par XMLDocument et DTDDocument.
 * Contient la liste des noeuds à l'intérieur du document et offre des méthodes génériques pour récupèrer le document en string ou la liste de ses enfants.
 *
 *  Created on: 16 mars 2011
 *      Author: bmaillot
 */

#ifndef DOCUMENT_H_
#define DOCUMENT_H_

#include <string>
#include <vector>
#include "XMLElement.h"

class Document
{
	protected :
		/**
		 * Liste des élèments constituant le document
		 */
		std::vector<XMLNode*> childList;

	public :
		Document();
		virtual ~Document();

		/**
		 * Récupère la liste des élèments constituant le document
		 */
		std::vector<XMLNode*> getChildList();

		/**
		 * Exporte le document en chaîne de caractère
		 */
		virtual std::string toString();

		/**
		 * Définit la liste des balises dans le document.
		 */
		void setChildList(std::vector<XMLNode*> childList);
};


#endif /* DOCUMENT_H_ */
